home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Plus 2004 #9
/
Amiga Plus CD - 2004 - No. 09.iso
/
amigaplus
/
games
/
wormwars
/
source
/
system.h
< prev
next >
Wrap
C/C++ Source or Header
|
2004-08-03
|
44KB
|
1,058 lines
// #INCLUDES --------------------------------------------------------------
#include <exec/exec.h>
#include <exec/memory.h>
#include <pragmas/exec_pragmas.h>
#include <clib/exec_protos.h>
#include <exec/execbase.h>
#include <intuition/intuition.h>
#include <intuition/gadgetclass.h> /* STRINGA_ReplaceMode */
#include <intuition/intuitionbase.h> /* struct IntuitionBase */
#include <pragmas/intuition_pragmas.h>
// #include <pragmas/asl_pragmas.h>
#include <libraries/asl.h> /* ASL_FileRequest */
#include <libraries/gadtools.h> /* struct StringInfo */
#include <pragmas/gadtools_pragmas.h>
#include <devices/audio.h>
#include <devices/gameport.h> /* struct GamePortTrigger */
// #include <pragmas/dos_pragmas.h>
#include <dos/dosextens.h> /* struct Process */
#include <dos/dos.h>
#include <graphics/gfxbase.h>
#include <graphics/displayinfo.h> /* PAL_MONITOR_ID, etc. */
#include <pragmas/graphics_pragmas.h>
#include <libraries/iffparse.h>
#include <pragmas/iffparse_pragmas.h>
#include <utility/date.h> /* struct DateStamp */
#include <pragmas/utility_pragmas.h>
#include <workbench/workbench.h> /* struct DiskObject */
#include <pragmas/wb_pragmas.h>
#include <hardware/cia.h> /* struct CIA */
#include <libraries/lowlevel.h>
// #include <libraries/amigaguide.h>
#include <stdio.h> /* FILE, printf() */
#include <stdlib.h> /* EXIT_SUCCESS, EXIT_FAILURE */
#include "diff.h"
#include "same.h"
#include "libproto.h"
/* joysticks */
#define JOYUP 1
#define JOYDOWN 2
#define JOYLEFT 4
#define JOYRIGHT 8
#define JOYFIRE1 16
#define JOYFIRE2 32
#define POTGOR *(UWORD *)0xDFF016
#define OLD 1
#define NEW 0
/* #DEFINES ---------------------------------------------------------------
Help|About... window */
#define ABOUTLINES 6
#define ABOUTSHADOW DARKGREY
#define ABOUTSHINE LIGHTGREY
#define PROJECTX 128
#define PROJECTY 75
#define KICKSTARTX 104
#define KICKSTARTY 91
#define WORKBENCHX 104
#define WORKBENCHY 99
/* fxable/musicable */
#define FAILED 0 // tried and failed
#define SUCCEEDED 1 // tried and succeeded
#define UNTRIED 2 // untried, will try at startup
#define DEFER 3 // untried, will try when needed
/* miscellaneous */
#define ANIMDELAY 1800
#define ENTIREXPIXEL 640
#define ENTIREYPIXEL 512
#define MAXXSIZE 1280
#define MAXYSIZE 1024
#define CENTREXPIXEL (DisplayWidth / 2)
#define CENTREYPIXEL (DisplayHeight / 2)
#define YSTART (CENTREYPIXEL - 200)
#define FIELDCENTREXPIXEL (STARTXPIXEL + ((ENDXPIXEL - STARTXPIXEL) / 2))
#define FIELDCENTREYPIXEL (STARTYPIXEL + ((ENDYPIXEL - STARTYPIXEL) / 2))
/* constant strings used more than once */
#define PATTERN "(#?.lset)"
#define OLDKICKSTART "Worm Wars: You need Kickstart R2.04+!\n(Can't open intuition.library V37+!)\n"
/* ARRAYS ---------------------------------------------------------------- */
#define CREATUREHELPS 25
struct
{ UBYTE image;
STRPTR desc;
} creaturehelp[CREATUREHELPS + 1] =
{ {ANT, "Ant" },
{BIRD, "Bird" },
{BULL, "Bull" },
{CAMEL, "Camel" },
{CLOUD, "Cloud" },
{CYCLONE_C, "Cyclone" },
{DOG, "Dog" },
{FISH, "Fish" },
{FROG, "Frog" },
{GIRAFFE, "Giraffe" },
{GOOSE, "Goose" },
{HORSE, "Horse" },
{KANGAROO, "Kangaroo" },
{MONKEY, "Monkey" },
{MOUSE, "Mouse" },
{ORB, "Orb" },
{OCTOPUS, "Octopus" },
{OTTER, "Otter" },
{LASTPROTECTOR, "Protector" },
{RABBIT, "Rabbit" },
{RAIN, "Rain" },
{SALAMANDER, "Salamander"},
{SLIME, "Slime" },
{SNAIL, "Snail" },
{SPIDER, "Spider" },
{LASTHEAD, "Worm" }
};
STRPTR objectdesc[LASTOBJECT + 1] =
{ "AFFIXER: Stops protectors rotating.",
"AMMO: 5 bullets.",
"ARMOUR: Immune to most damage.",
"AUTOJUMP: Automagically jump. :-)",
"BONUS: Awards the next number.",
"BRAKES: Enables very slow speed.",
"CONVERTER: Fragments to missiles.",
"CUTTER: Cuts a tunnel through tail.",
"CYCLONE: Unleashes a cyclone.",
"ENCLOSER: Rectangular enclosure.",
"GLOW: Leaves a glowing tail.",
"GROWER: Enlarges silver and gold.",
"ICE: Freezes enemies.",
"LIGHTNING: Flashes around tail.",
"MAGNET: Attracts objects.",
"MINI BOMB: A minor explosion.",
"MINI HEALER: 5 lives.",
"MISSILE: A guided missile.",
"MULTIPLIER: More points.",
"POWER: Thicker bullets.",
"PROTECTOR: An orbiting companion.",
"PULSE: Fragment explosion.",
"PUSHER: Lets you push things.",
"REMNANTS: Bullets leave a trail.",
"SIDESHOT: Shoot sideways.",
"SLAYER: Smart bomb.",
"SLOWER: Slows creatures down.",
"SUPER BOMB: A major explosion.",
"SUPER HEALER: 20 lives.",
"SWITCHER: Changes tail colours.",
"TREASURE: Treasure level.",
"UMBRELLA: Skips 2-3 levels."
};
UWORD chip LogoData[8360] =
{
61440,0,120,0,0,0,0,0,0,0,3,65535,65535,61440,0,0,0,0,0,
61440,0,120,0,0,0,0,0,0,0,15,65535,65535,64512,0,0,0,0,0,
61440,768,120,0,0,0,0,0,0,16,15,65535,65535,65024,0,0,0,0,0,
61440,4032,120,0,0,0,0,0,0,0,31,65535,65535,65024,0,0,0,0,0,
61440,8160,120,0,0,0,0,15,65535,64520,31,65535,65535,65280,0,0,0,0,0,
61440,16368,120,0,0,0,0,15,65535,65036,31,65535,65535,65408,0,0,0,0,0,
61440,15216,120,0,0,0,0,15,65535,65294,31,65535,65535,65472,0,0,0,0,0,
61440,16368,120,0,0,0,0,14,0,14,31,57345,64512,8128,0,0,0,0,0,
61440,8160,120,0,0,0,0,14,0,14,31,57345,64512,8128,0,0,0,0,0,
61440,1920,120,0,0,0,0,14,0,14,31,49153,64512,8128,0,0,0,0,0,
61440,1920,120,0,0,0,0,14,0,14,31,49153,64512,8128,0,0,0,0,0,
61440,1920,120,0,0,0,0,14,0,14,31,49153,64512,8128,0,0,0,0,0,
61440,1920,120,0,0,0,0,14,0,14,31,49153,64512,8128,0,0,0,0,0,
61440,1920,120,0,0,0,0,14,0,14,31,49153,64512,8128,0,0,0,0,0,
61440,1920,120,0,0,0,0,14,0,126,31,49153,64512,8128,0,0,0,0,0,
61440,1920,120,0,0,0,0,14,0,62,31,49153,64512,8128,0,0,0,0,0,
61440,1920,120,0,0,0,0,14,0,30,31,49153,64512,8128,0,0,0,0,0,
61440,1920,120,0,0,0,0,14,0,0,31,49153,64512,8128,0,0,0,0,0,
61440,1920,120,0,0,0,0,14,0,0,31,49153,64512,8128,0,0,0,0,0,
61440,1920,120,0,0,0,0,14,0,0,31,49153,64512,8128,0,0,0,0,0,
61440,1920,120,0,0,0,0,14,0,0,31,49153,64512,8128,0,0,0,0,0,
61440,1920,120,0,0,0,0,14,0,0,31,49153,64512,8128,0,0,0,0,0,
61440,1920,120,0,0,0,0,14,0,0,31,49153,64512,8128,0,0,0,0,0,
61440,1920,120,0,0,0,0,14,0,0,31,49153,64512,8128,0,0,0,0,0,
61440,1920,120,0,0,0,0,14,0,0,31,49153,64512,8128,0,0,0,0,0,
61440,1920,120,0,0,0,0,14,0,0,31,49153,64512,8128,0,0,0,0,0,
61440,1920,120,0,0,0,0,14,0,0,31,49153,64512,8128,0,0,0,0,0,
61440,1920,120,0,0,0,0,14,0,0,31,49153,64512,8128,0,0,0,0,0,
61440,1920,120,0,0,0,0,14,0,0,31,49153,64512,8128,0,0,0,0,0,
61440,1920,120,0,0,0,0,14,0,0,31,49153,64512,8128,0,0,0,0,0,
61440,1920,120,0,0,0,0,14,0,0,31,49153,64512,8128,0,0,0,0,0,
61440,1920,120,0,0,0,0,14,0,0,31,49153,64512,8128,0,0,0,0,0,
61440,1920,120,0,0,0,0,14,0,0,31,49153,64512,8128,0,0,0,0,0,
61440,1920,120,0,0,0,0,14,0,0,31,49153,64512,8128,0,0,0,0,0,
61440,1920,120,0,0,0,0,14,0,0,31,49153,64512,8128,0,0,0,0,0,
61440,1920,120,0,0,0,0,2,0,0,31,49153,64512,8128,0,0,0,0,0,
61440,1920,120,0,0,0,0,924,0,0,31,49159,64512,8128,0,0,0,0,0,
61440,1920,120,0,0,0,0,780,0,0,31,49167,64512,8128,0,0,0,0,0,
63488,1920,248,0,0,0,0,0,0,0,31,49166,56320,8128,0,0,0,0,0,
64512,1920,504,0,0,0,0,0,0,0,31,49167,64512,8128,0,0,0,0,0,
65535,65535,65528,0,0,0,0,0,0,0,31,49159,63488,8128,0,0,0,0,0,
32767,65535,65520,0,0,0,0,0,0,0,31,49155,61440,8128,0,0,0,0,0,
32767,65535,65520,0,0,0,0,0,0,0,31,49152,49152,8128,0,0,0,0,0,
8191,65535,65472,0,0,0,0,0,0,0,31,49152,0,8128,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,31,49152,0,8128,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,15,49152,0,4032,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,7,49152,0,1984,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,3,49152,0,960,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,1,49152,0,0,0,0,0,
0,0,0,0,6144,0,0,0,0,0,0,0,3,57344,0,0,0,0,0,
0,0,0,0,6144,0,0,0,0,0,0,0,3,61440,0,0,0,0,0,
0,0,0,0,2048,0,0,0,0,0,1,65535,65535,28672,0,0,0,0,0,
61440,0,120,0,0,0,0,0,0,0,3,65535,65535,63488,0,0,0,0,0,
63488,0,124,0,0,0,0,0,0,0,15,65535,65535,63488,0,0,0,0,0,
64512,768,126,0,2048,0,128,0,0,0,15,65535,65535,28672,0,0,0,0,0,
65024,4032,127,0,7167,65535,49152,0,0,0,31,49152,3,61440,0,0,0,0,0,
65024,8160,127,0,7167,65535,61504,0,0,0,31,0,3,57344,0,0,0,0,0,
65024,16368,127,0,2047,65535,61536,0,0,0,31,0,1,49152,0,0,0,0,0,
65024,15216,127,0,0,0,112,0,0,0,30,0,0,0,0,0,0,0,0,
65024,16368,127,0,0,0,112,0,0,0,30,0,0,0,0,0,0,0,0,
65024,8176,127,0,0,0,112,0,0,0,30,0,0,0,0,0,0,0,0,
65024,2032,127,0,0,0,112,0,0,0,30,0,0,0,0,0,0,0,0,
65024,2032,127,0,0,0,112,0,0,0,30,0,0,0,0,0,0,0,0,
65024,2032,127,0,0,0,112,0,0,0,30,0,0,0,0,0,0,0,0,
65024,2032,127,0,0,0,112,0,0,0,30,0,0,0,0,0,0,0,0,
65024,2032,127,0,0,0,112,0,0,0,30,0,0,0,0,0,0,0,0,
65024,2032,127,0,0,0,112,0,0,0,30,0,0,0,0,0,0,0,0,
65024,2032,127,0,0,0,112,0,0,0,30,0,0,0,0,0,0,0,0,
65024,2032,127,0,0,0,112,0,0,0,30,0,0,0,0,0,0,0,0,
65024,2032,127,0,0,0,112,0,0,0,30,0,0,0,0,0,0,0,0,
65024,2032,127,0,0,0,112,0,0,0,30,0,0,0,0,0,0,0,0,
65024,2032,127,0,0,0,112,0,0,0,31,0,0,0,0,0,0,0,0,
65024,2032,127,0,0,0,112,0,0,0,31,32768,0,0,0,0,0,0,0,
65024,2032,127,0,0,0,112,0,0,0,31,65535,65535,57344,0,0,0,0,0,
65024,2032,127,0,0,0,112,0,0,0,15,65535,65535,61440,0,0,0,0,0,
65024,2032,127,0,0,0,112,0,0,0,15,65535,65535,64512,0,0,0,0,0,
65024,2032,127,0,0,0,112,0,0,0,3,65535,65535,64512,0,0,0,0,0,
65024,2032,127,0,4095,65535,63600,0,0,0,0,0,0,65024,0,0,0,0,0,
65024,2032,127,0,16383,65535,63600,0,0,0,0,0,0,15872,0,0,0,0,0,
65024,2032,127,0,16383,65535,63600,0,0,0,0,0,0,15872,0,0,0,0,0,
65024,2032,127,0,32256,0,112,0,0,0,0,0,0,7680,0,0,0,0,0,
65024,2032,127,0,30720,0,112,0,0,0,0,0,0,7680,0,0,0,0,0,
65024,2032,127,0,30720,0,112,0,0,0,0,0,0,7680,0,0,0,0,0,
65024,2032,127,0,28672,0,112,0,0,0,0,0,0,7680,0,0,0,0,0,
65024,2032,127,0,28672,0,112,0,0,0,0,0,0,7680,0,0,0,0,0,
65024,2032,127,0,28672,0,112,0,0,0,0,0,0,7680,0,0,0,0,0,
65024,2032,127,0,28672,0,112,0,0,0,0,0,0,7680,0,0,0,0,0,
65024,2032,127,0,28672,0,112,0,0,0,0,0,0,7680,0,0,0,0,0,
65024,2032,127,0,28672,0,112,924,0,0,0,0,0,7680,0,0,0,0,0,
65024,2032,127,0,28672,0,112,780,0,0,0,0,0,7680,0,0,0,0,0,
65024,2032,255,0,12288,0,112,0,0,0,0,0,0,15872,0,0,0,0,0,
65024,2032,511,0,12288,0,112,0,0,0,0,0,0,32256,0,0,0,0,0,
65535,65535,65535,0,0,0,112,0,0,0,31,65535,65535,65024,0,0,0,0,0,
32767,65535,65535,0,0,0,240,0,0,0,31,65535,65535,64512,0,0,0,0,0,
32767,65535,65535,0,0,0,240,0,0,0,31,65535,65535,64512,0,0,0,0,0,
16383,65535,65535,1,0,0,1008,0,0,0,31,65535,65535,61440,0,0,0,0,0,
4095,65535,65534,0,32767,65535,65504,0,0,0,0,0,0,0,0,0,0,0,0,
2047,65535,65534,0,16383,65535,65504,0,0,0,0,0,0,0,0,0,0,0,0,
1023,65535,65528,0,8191,65535,65408,0,0,0,0,0,0,0,0,0,0,0,0,
61440,768,120,0,65535,65535,64512,255,65535,65408,3,65535,65535,61440,0,0,0,0,0,
63488,768,124,3,65535,65535,65280,255,65535,65504,15,65535,65535,64512,0,0,0,0,0,
64512,768,126,3,65535,65535,65280,255,65535,65504,15,65535,65535,65024,0,0,0,0,0,
65024,4032,127,7,65535,65535,65408,255,65535,65520,31,65535,65535,65024,0,0,0,0,0,
65024,8160,127,7,57344,0,8064,240,0,1008,31,65535,65535,65280,255,65535,65535,65535,61440,
65024,16368,127,7,49152,0,3968,240,0,496,31,65535,65535,65408,255,65535,65535,65535,61440,
65024,15216,127,7,32768,0,1920,240,0,240,31,65535,65535,65472,255,65535,65535,65535,57344,
65024,16368,127,7,32768,0,1920,240,0,240,31,57345,64512,8128,255,65535,65535,65535,57344,
65024,8176,127,7,32768,0,1920,240,0,240,31,57345,64512,8128,255,65535,65535,65535,57344,
65024,2032,127,7,32768,0,1920,240,0,240,31,49153,64512,8128,0,0,0,15,49152,
65024,2032,127,7,32768,0,1920,240,0,240,31,49153,64512,8128,0,0,0,15,49152,
65024,2032,127,7,32768,0,1920,240,0,240,31,49153,64512,8128,0,0,0,15,49152,
65024,2032,127,7,32768,0,1920,240,0,240,31,49153,64512,8128,0,0,0,31,32768,
65024,2032,127,7,32768,0,1920,240,0,240,31,49153,64512,8128,0,0,0,31,32768,
65024,2032,127,7,32768,0,1920,240,0,0,31,49153,64512,8128,0,0,0,31,32768,
65024,2032,127,7,32768,0,1920,240,0,0,31,49153,64512,8128,0,0,0,31,32768,
65024,2032,127,7,32768,0,1920,240,0,0,31,49153,64512,8128,0,0,0,63,0,
65024,2032,127,7,32768,0,1920,240,0,0,31,49153,64512,8128,0,0,0,63,0,
65024,2032,127,7,32768,0,1920,240,0,0,31,49153,64512,8128,0,0,0,63,0,
65024,2032,127,7,32768,0,1920,240,0,0,31,49153,64512,8128,0,0,0,126,0,
65024,2032,127,7,32768,0,1920,240,0,0,31,49153,64512,8128,0,0,0,126,0,
65024,2032,127,7,32768,0,1920,240,0,0,31,49153,64512,8128,0,0,0,126,0,
65024,2032,127,7,32768,0,1920,240,0,0,31,49153,64512,8128,0,0,0,252,0,
65024,2032,127,7,32768,0,1920,240,0,0,31,49153,64512,8128,0,0,0,252,0,
65024,2032,127,7,32768,0,1920,240,0,0,31,49153,64512,8128,0,0,0,252,0,
65024,2032,127,7,32768,0,1920,240,0,0,31,49153,64512,8128,0,0,0,504,0,
65024,2032,127,7,32768,0,1920,240,0,0,31,49153,64512,8128,0,0,0,504,0,
65024,2032,127,7,32768,0,1920,240,0,0,31,49153,64512,8128,0,0,0,504,0,
65024,2032,127,7,32768,0,1920,240,0,0,31,49153,64512,8128,0,0,0,1008,0,
65024,2032,127,7,32768,0,1920,240,0,0,31,49153,64512,8128,0,0,0,1008,0,
65024,2032,127,7,32768,0,1920,240,0,0,31,49153,64512,8128,0,0,0,1008,0,
65024,2032,127,7,32768,0,1920,240,0,0,31,49153,64512,8128,0,0,0,2016,0,
65024,2032,127,7,32768,0,1920,240,0,0,31,49153,64512,8128,0,0,0,2016,0,
65024,2032,127,7,32768,0,1920,240,0,0,31,49153,64512,8128,0,0,0,2016,0,
65024,2032,127,7,32768,0,1920,240,0,0,31,49153,64512,8128,0,0,0,2016,0,
65024,2032,127,7,32768,0,1920,1020,0,0,31,49153,64512,8128,0,0,0,4032,0,
65024,2032,127,7,32768,0,1920,2046,0,0,31,49159,64512,8128,0,0,0,4032,0,
65024,2032,127,7,32768,0,1920,1902,0,0,31,49167,64512,8128,0,0,0,4032,0,
65024,2032,255,7,49152,0,3968,2046,0,0,31,49166,56320,8128,0,0,0,8064,0,
65024,2032,511,7,57344,0,8064,1020,0,0,31,49167,64512,8128,0,0,0,8064,0,
65535,65535,65535,7,65535,65535,65408,504,0,0,31,49159,63488,8128,0,0,0,8064,0,
32767,65535,65535,3,65535,65535,65280,96,0,0,31,49155,61440,8128,0,0,0,16128,0,
32767,65535,65535,3,65535,65535,65280,96,0,0,31,49152,49152,8128,0,0,0,16128,0,
16383,65535,65535,0,65535,65535,64512,96,0,0,31,49152,49152,8128,0,0,0,16128,0,
4095,65535,65534,0,0,0,0,0,0,0,31,49152,49152,8128,0,0,0,32256,0,
2047,65535,65534,0,0,0,0,0,0,0,15,49152,0,4032,0,0,0,32256,0,
1023,65535,65528,0,0,0,0,0,0,0,7,49152,0,1984,0,0,0,32256,0,
0,0,0,0,0,0,0,0,0,0,3,49152,0,960,0,0,0,64512,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64512,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64512,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,63488,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,63488,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,63488,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,63488,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,61440,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,61440,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,61440,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,57344,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,57344,0,
0,0,0,0,14336,0,0,0,0,0,0,0,1,49152,0,0,15,57344,0,
0,0,0,0,31744,0,0,0,0,0,0,0,3,57344,0,0,15,49152,0,
0,0,0,0,64512,0,0,0,0,0,0,0,3,61440,0,0,15,49152,0,
0,0,0,0,61439,65535,63488,255,65535,65280,1,65535,65535,28672,0,0,31,49152,0,
61440,768,120,7,65535,65535,64512,255,65535,65408,3,65535,65535,65024,0,0,31,32768,0,
63488,768,124,7,65535,65535,65280,255,65535,65504,15,65535,65535,65024,0,0,31,32768,0,
64512,768,126,0,61439,65535,65280,255,65535,65504,15,65535,65535,28672,0,0,63,32768,0,
65024,4032,127,0,64512,0,16256,240,0,2032,31,65535,65535,61440,0,0,63,0,0,
65024,8160,127,0,31744,0,3968,240,0,496,31,65535,65535,57344,0,0,63,0,0,
65024,16368,127,0,14336,0,3968,240,0,496,31,65535,65535,49152,0,0,127,0,0,
65024,15216,127,0,0,0,1920,240,0,240,31,63488,0,0,0,0,126,0,0,
65024,16368,127,0,0,0,1920,240,0,240,31,57344,0,0,0,0,126,0,0,
65024,8176,127,0,0,0,1920,240,0,240,31,57344,0,0,0,0,254,0,0,
65024,2032,127,0,0,0,1920,240,0,240,31,49152,0,0,0,0,252,0,0,
65024,2032,127,0,0,0,1920,240,0,240,31,49152,0,0,0,0,252,0,0,
65024,2032,127,0,0,0,1920,240,0,240,31,49152,0,0,0,0,508,0,0,
65024,2032,127,0,0,0,1920,240,0,240,31,49152,0,0,0,0,508,0,0,
65024,2032,127,0,0,0,1920,240,0,240,31,49152,0,0,0,0,504,0,0,
65024,2032,127,0,0,0,1920,240,0,0,31,49152,0,0,0,0,1016,0,0,
65024,2032,127,0,0,0,1920,240,0,0,31,49152,0,0,0,0,1016,0,0,
65024,2032,127,0,0,0,1920,240,0,0,31,49152,0,0,0,0,1008,0,0,
65024,2032,127,0,0,0,1920,240,0,0,31,49152,0,0,0,0,2032,0,0,
65024,2032,127,0,0,0,1920,240,0,0,31,49152,0,0,0,0,2032,0,0,
65024,2032,127,0,0,0,1920,240,0,0,31,49152,0,0,0,0,2016,0,0,
65024,2032,127,0,0,0,1920,240,0,0,31,49152,0,0,0,0,4064,0,0,
65024,2032,127,0,32767,65535,65408,240,0,0,31,65535,65535,57344,0,0,4064,0,0,
65024,2032,127,0,65535,65535,65408,240,0,0,15,65535,65535,61440,0,0,4032,0,0,
65024,2032,127,3,65535,65535,65408,240,0,0,15,65535,65535,64512,0,0,8128,0,0,
65024,2032,127,3,65535,65535,65408,240,0,0,7,65535,65535,65024,0,0,8128,0,0,
65024,2032,127,7,61440,0,1920,240,0,0,1,65535,65535,65024,0,0,8064,0,0,
65024,2032,127,7,49152,0,1920,240,0,0,0,65535,65535,65280,0,0,16256,0,0,
65024,2032,127,7,49152,0,1920,240,0,0,0,32767,65535,65408,0,0,16256,0,0,
65024,2032,127,7,32768,0,1920,240,0,0,0,0,0,8128,0,0,16128,0,0,
65024,2032,127,7,32768,0,1920,240,0,0,0,0,0,8128,0,0,32512,0,0,
65024,2032,127,7,32768,0,1920,240,0,0,0,0,0,8128,0,0,32512,0,0,
65024,2032,127,7,32768,0,1920,240,0,0,0,0,0,8128,0,0,32512,0,0,
65024,2032,127,7,32768,0,1920,240,0,0,0,0,0,8128,0,0,65024,0,0,
65024,2032,127,7,32768,0,1920,240,0,0,0,0,0,8128,0,0,65024,0,0,
65024,2032,127,7,32768,0,1920,240,0,0,0,0,0,8128,0,0,65024,0,0,
65024,2032,127,7,32768,0,1920,1020,0,0,0,0,0,8128,0,1,64512,0,0,
65024,2032,127,7,32768,0,1920,2046,0,0,0,0,0,8128,0,1,64512,0,0,
65024,2032,127,7,32768,0,1920,1902,0,0,0,0,0,8128,0,1,64512,0,0,
65024,2032,255,7,49152,0,3968,2046,0,0,0,0,0,16320,0,3,63488,0,0,
65024,2032,511,7,49152,0,3968,1020,0,0,0,0,0,32704,0,3,63488,0,0,
65535,65535,65535,7,65535,65535,65408,504,0,0,31,65535,65535,65472,0,0,0,0,0,
32767,65535,65535,3,65535,65535,65280,96,0,0,31,65535,65535,65472,0,0,0,0,0,
32767,65535,65535,3,65535,65535,65280,96,0,0,31,65535,65535,65472,0,0,0,0,0,
16383,65535,65535,0,65535,65535,64512,96,0,0,31,65535,65535,65472,0,0,0,0,0,
4095,65535,65534,0,0,0,0,0,0,0,15,65535,65535,65408,0,0,0,0,0,
2047,65535,65534,0,0,0,0,0,0,0,7,65535,65535,65408,0,0,0,0,0,
1023,65535,65528,0,0,0,0,0,0,0,3,65535,65535,65024,0,0,0,0,0,
61440,0,120,0,0,0,0,255,65535,65408,0,0,0,0,0,0,0,0,0,
61440,0,120,0,0,0,0,255,65535,65504,0,0,0,0,0,0,0,0,0,
61440,768,120,0,0,0,0,255,65535,65520,0,0,0,0,0,0,0,0,0,
61440,4032,120,0,0,0,0,255,65535,65520,0,0,0,0,0,0,0,0,0,
61440,8160,120,0,0,0,0,255,65535,65528,0,0,0,0,255,65535,65535,65535,61440,
61440,16368,120,0,0,0,0,255,65535,65532,0,0,0,0,255,65535,65535,65535,63488,
61440,15216,120,0,0,0,0,255,65535,65534,0,0,0,0,255,65535,65535,65535,64512,
61440,16368,120,0,0,0,0,254,0,254,0,0,0,0,255,65535,65535,65535,65024,
61440,8160,120,0,0,0,0,254,0,254,0,0,0,0,255,65535,65535,65535,65024,
61440,1920,120,0,0,0,0,254,0,254,0,0,0,0,127,65535,65535,65535,64512,
61440,1920,120,0,0,0,0,254,0,254,0,0,0,0,63,65535,65535,65535,64512,
61440,1920,120,0,0,0,0,254,0,254,0,0,0,0,31,65535,65535,65535,64512,
61440,1920,120,0,0,0,0,254,0,254,0,0,0,0,0,0,0,31,63488,
61440,1920,120,0,0,0,0,254,0,254,0,0,0,0,0,0,0,31,63488,
61440,1920,120,0,0,0,0,254,0,126,0,0,0,0,0,0,0,31,63488,
61440,1920,120,0,0,0,0,254,0,62,0,0,0,0,0,0,0,31,61440,
61440,1920,120,0,0,0,0,254,0,30,0,0,0,0,0,0,0,63,61440,
61440,1920,120,0,0,0,0,254,0,0,0,0,0,0,0,0,0,63,61440,
61440,1920,120,0,0,0,0,254,0,0,0,0,0,0,0,0,0,63,61440,
61440,1920,120,0,0,0,0,254,0,0,0,0,0,0,0,0,0,127,57344,
61440,1920,120,0,0,0,0,254,0,0,0,0,0,0,0,0,0,127,57344,
61440,1920,120,0,0,0,0,254,0,0,0,0,0,0,0,0,0,127,57344,
61440,1920,120,0,0,0,0,254,0,0,0,0,0,0,0,0,0,255,49152,
61440,1920,120,0,0,0,0,254,0,0,0,0,0,0,0,0,0,255,49152,
61440,1920,120,0,0,0,0,254,0,0,0,0,0,0,0,0,0,255,49152,
61440,1920,120,0,0,0,0,254,0,0,0,0,0,0,0,0,0,511,32768,
61440,1920,120,0,0,0,0,254,0,0,0,0,0,0,0,0,0,511,32768,
61440,1920,120,0,0,0,0,254,0,0,0,0,0,0,0,0,0,511,32768,
61440,1920,120,0,0,0,0,254,0,0,0,0,0,0,0,0,0,1023,0,
61440,1920,120,0,0,0,0,254,0,0,0,0,0,0,0,0,0,1023,0,
61440,1920,120,0,0,0,0,254,0,0,0,0,0,0,0,0,0,1023,0,
61440,1920,120,0,0,0,0,254,0,0,0,0,0,0,0,0,0,2046,0,
61440,1920,120,0,0,0,0,254,0,0,0,0,0,0,0,0,0,2046,0,
61440,1920,120,0,0,0,0,254,0,0,0,0,0,0,0,0,0,2046,0,
61440,1920,120,0,0,0,0,254,0,0,0,0,0,0,0,0,0,2044,0,
61440,1920,120,0,0,0,0,1022,0,0,0,0,0,0,0,0,0,4092,0,
61440,1920,120,0,0,0,0,2046,0,0,0,0,0,0,0,0,0,4092,0,
61440,1920,120,0,0,0,0,1902,0,0,0,7,14336,0,0,0,0,4092,0,
63488,1920,248,0,0,0,0,2046,0,0,0,6,6144,0,0,0,0,8184,0,
64512,1920,504,0,0,0,0,1020,0,0,0,0,0,0,0,0,0,8184,0,
65535,65535,65528,0,0,0,0,504,0,0,0,0,0,0,0,0,0,8184,0,
32767,65535,65520,0,0,0,0,96,0,0,0,0,0,0,0,0,0,16368,0,
32767,65535,65520,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16368,0,
8191,65535,65472,0,0,0,0,0,0,0,0,0,49152,0,0,0,0,16368,0,
0,0,0,0,0,0,0,0,0,0,0,0,49152,0,0,0,0,32736,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32736,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32736,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65472,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65472,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65472,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,65408,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,65408,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,65408,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,65280,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,65280,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,65280,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,65280,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,65024,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,65024,0,
0,0,0,0,14336,0,0,0,0,0,0,0,1,49152,0,0,15,65024,0,
0,0,0,0,31744,0,0,0,0,0,0,0,3,57344,0,0,15,64512,0,
0,0,0,0,64512,0,0,0,0,0,0,0,3,61440,0,0,15,64512,0,
0,0,0,0,61439,65535,63488,0,0,0,1,65535,65535,28672,0,0,31,64512,0,
0,768,0,1,65535,65535,64512,0,0,0,3,65535,65535,63488,0,0,31,63488,0,
0,768,0,1,65535,65535,65280,0,0,0,15,65535,65535,63488,0,0,31,63488,0,
0,0,0,0,61439,65535,65408,0,0,0,15,65535,65535,28672,0,0,63,63488,0,
0,0,0,0,65535,65535,65408,0,0,0,31,49152,3,61440,0,0,63,61440,0,
0,0,0,0,32767,65535,65472,0,0,0,31,0,3,57344,0,0,63,61440,0,
0,0,0,0,16383,65535,65504,0,0,0,31,0,1,49152,0,0,127,61440,0,
0,6240,0,0,0,0,2032,0,0,0,30,0,0,0,0,0,127,57344,0,
0,7392,0,0,0,0,2032,0,0,0,30,0,0,0,0,0,127,57344,0,
0,0,0,0,0,0,2032,0,0,0,30,0,0,0,0,0,255,57344,0,
0,0,0,0,0,0,2032,0,0,0,30,0,0,0,0,0,255,49152,0,
0,0,0,0,0,0,2032,0,0,0,30,0,0,0,0,0,255,49152,0,
0,0,0,0,0,0,2032,0,0,0,30,0,0,0,0,0,511,49152,0,
0,0,0,0,0,0,2032,0,0,0,30,0,0,0,0,0,511,32768,0,
0,0,0,0,0,0,2032,0,0,0,30,0,0,0,0,0,511,32768,0,
0,0,0,0,0,0,2032,0,0,0,30,0,0,0,0,0,1023,32768,0,
0,0,0,0,0,0,2032,0,0,0,30,0,0,0,0,0,1023,32768,0,
0,0,0,0,0,0,2032,0,0,0,30,0,0,0,0,0,1023,0,0,
0,0,0,0,0,0,2032,0,0,0,30,0,0,0,0,0,2047,0,0,
0,0,0,0,0,0,2032,0,0,0,30,0,0,0,0,0,2047,0,0,
0,0,0,0,0,0,2032,0,0,0,31,0,0,0,0,0,2046,0,0,
0,0,0,0,0,0,2032,0,0,0,31,32768,0,0,0,0,4094,0,0,
0,0,0,0,32767,65535,65520,0,0,0,31,65535,65535,57344,0,0,4094,0,0,
0,0,0,0,65535,65535,65520,0,0,0,15,65535,65535,61440,0,0,4092,0,0,
0,0,0,3,65535,65535,65520,0,0,0,15,65535,65535,64512,0,0,8188,0,0,
0,0,0,3,65535,65535,65520,0,0,0,3,65535,65535,64512,0,0,8188,0,0,
0,0,0,7,65535,65535,65520,0,0,0,0,0,0,65024,0,0,8184,0,0,
0,0,0,7,65535,65535,65520,0,0,0,0,0,0,15872,0,0,16376,0,0,
0,0,0,7,65535,65535,65520,0,0,0,0,0,0,15872,0,0,16376,0,0,
0,0,0,7,65024,0,2032,0,0,0,0,0,0,7680,0,0,16368,0,0,
0,0,0,7,63488,0,2032,0,0,0,0,0,0,7680,0,0,32752,0,0,
0,0,0,7,63488,0,2032,0,0,0,0,0,0,7680,0,0,32752,0,0,
0,0,0,7,61440,0,2032,0,0,0,0,0,0,7680,0,0,32736,0,0,
0,0,0,7,61440,0,2032,0,0,0,0,0,0,7680,0,0,65504,0,0,
0,0,0,7,61440,0,2032,0,0,0,0,0,0,7680,0,0,65504,0,0,
0,0,0,7,61440,0,2032,0,0,0,0,0,0,7680,0,0,65504,0,0,
0,0,0,7,61440,0,2032,0,0,0,0,0,0,7680,0,1,65472,0,0,
0,0,0,7,61440,0,2032,924,0,0,0,0,0,7680,0,1,65472,0,0,
0,0,0,7,61440,0,2032,780,0,0,0,0,0,7680,0,1,65472,0,0,
0,0,0,7,61440,0,4080,0,0,0,0,0,0,15872,0,3,65408,0,0,
0,0,0,7,61440,0,4080,0,0,0,0,0,0,32256,0,3,65408,0,0,
0,0,0,7,65535,65535,65520,0,0,0,31,65535,65535,65024,0,1,65408,0,0,
0,0,0,3,65535,65535,65520,0,0,0,31,65535,65535,64512,0,0,65280,0,0,
0,0,0,3,65535,65535,65520,96,0,0,31,65535,65535,64512,0,0,32512,0,0,
0,0,0,1,65535,65535,65520,96,0,0,31,65535,65535,61440,0,0,0,0,0,
0,0,0,0,32767,65535,65504,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,16383,65535,65504,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,8191,65535,65408,0,0,0,0,0,0,0,0,0,0,0,0,
0,768,0,0,65535,65535,64512,0,0,0,3,65535,65535,61440,0,0,0,0,0,
0,768,0,3,65535,65535,65280,0,0,0,15,65535,65535,64512,0,0,0,0,0,
0,0,0,3,65535,65535,65408,0,0,0,15,65535,65535,64512,0,0,0,0,0,
0,0,0,7,65535,65535,65408,0,0,0,31,65535,65535,65024,0,0,0,0,0,
0,0,0,7,65535,65535,65472,0,0,0,31,32769,57344,32256,255,65535,65535,65535,61440,
0,0,0,7,65535,65535,65504,0,0,0,31,1,57344,15872,255,65535,65535,65535,61440,
0,6240,0,7,65535,65535,65520,0,0,0,30,1,57344,7680,255,65535,65535,65535,57344,
0,7392,0,7,64512,0,2032,0,0,0,30,1,57344,7680,255,65535,65535,65535,57344,
0,0,0,7,63488,0,2032,0,0,0,30,1,57344,7680,255,65535,65535,65535,57344,
0,0,0,7,61440,0,2032,0,0,0,30,1,57344,7680,0,0,0,15,49152,
0,0,0,7,61440,0,2032,0,0,0,30,1,57344,7680,0,0,0,15,49152,
0,0,0,7,61440,0,2032,0,0,0,30,1,57344,7680,0,0,0,15,49152,
0,0,0,7,61440,0,2032,0,0,0,30,1,57344,7680,0,0,0,31,32768,
0,0,0,7,61440,0,2032,0,0,0,30,1,57344,7680,0,0,0,31,32768,
0,0,0,7,61440,0,2032,0,0,0,30,1,57344,7680,0,0,0,31,32768,
0,0,0,7,61440,0,2032,0,0,0,30,1,57344,7680,0,0,0,31,32768,
0,0,0,7,61440,0,2032,0,0,0,30,1,57344,7680,0,0,0,63,0,
0,0,0,7,61440,0,2032,0,0,0,30,1,57344,7680,0,0,0,63,0,
0,0,0,7,61440,0,2032,0,0,0,30,1,57344,7680,0,0,0,63,0,
0,0,0,7,61440,0,2032,0,0,0,30,1,57344,7680,0,0,0,126,0,
0,0,0,7,61440,0,2032,0,0,0,30,1,57344,7680,0,0,0,126,0,
0,0,0,7,61440,0,2032,0,0,0,30,1,57344,7680,0,0,0,126,0,
0,0,0,7,61440,0,2032,0,0,0,30,1,57344,7680,0,0,0,252,0,
0,0,0,7,61440,0,2032,0,0,0,30,1,57344,7680,0,0,0,252,0,
0,0,0,7,61440,0,2032,0,0,0,30,1,57344,7680,0,0,0,252,0,
0,0,0,7,61440,0,2032,0,0,0,30,1,57344,7680,0,0,0,504,0,
0,0,0,7,61440,0,2032,0,0,0,30,1,57344,7680,0,0,0,504,0,
0,0,0,7,61440,0,2032,0,0,0,30,1,57344,7680,0,0,0,504,0,
0,0,0,7,61440,0,2032,0,0,0,30,1,57344,7680,0,0,0,1008,0,
0,0,0,7,61440,0,2032,0,0,0,30,1,57344,7680,0,0,0,1008,0,
0,0,0,7,61440,0,2032,0,0,0,30,1,57344,7680,0,0,0,1008,0,
0,0,0,7,61440,0,2032,0,0,0,30,1,57344,7680,0,0,0,2016,0,
0,0,0,7,61440,0,2032,0,0,0,30,1,57344,7680,0,0,0,2016,0,
0,0,0,7,61440,0,2032,0,0,0,30,1,57344,7680,0,0,0,2016,0,
0,0,0,7,61440,0,2032,0,0,0,30,1,57344,7680,0,0,0,2016,0,
0,0,0,7,61440,0,2032,0,0,0,30,1,57344,7680,0,0,0,4032,0,
0,0,0,7,61440,0,2032,924,0,0,30,7,63488,7680,0,0,0,4032,0,
0,0,0,7,61440,0,2032,780,0,0,30,15,64512,7680,0,0,0,4032,0,
0,0,0,7,61440,0,4080,0,0,0,30,14,56320,7680,0,0,0,8064,0,
0,0,0,7,61440,0,8176,0,0,0,30,15,64512,7680,0,0,0,8064,0,
0,0,0,7,65535,65535,65520,0,0,0,30,7,63488,7680,0,0,0,8064,0,
0,0,0,3,65535,65535,65520,0,0,0,30,3,61440,7680,0,0,0,16128,0,
0,0,0,3,65535,65535,65520,96,0,0,30,0,49152,7680,0,0,0,16128,0,
0,0,0,1,65535,65535,65520,96,0,0,30,0,0,7680,0,0,0,16128,0,
0,0,0,0,32767,65535,65504,0,0,0,30,0,0,7680,0,0,0,32256,0,
0,0,0,0,16383,65535,65504,0,0,0,0,0,0,0,0,0,0,32256,0,
0,0,0,0,8191,65535,65408,0,0,0,0,0,0,0,0,0,0,32256,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64512,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64512,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64512,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,63488,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,63488,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,63488,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,63488,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,61440,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,61440,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,61440,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,57344,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,57344,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,57344,0,
0,0,0,0,6144,0,0,0,0,0,0,0,1,32768,0,0,15,49152,0,
0,0,0,0,6144,0,0,0,0,0,0,0,1,32768,0,0,15,49152,0,
0,0,0,0,2048,0,0,255,65535,65280,0,0,1,0,0,0,31,49152,0,
61440,0,120,6,0,0,0,255,65535,65408,0,0,0,1536,0,0,31,32768,0,
61440,0,120,6,0,0,0,255,65535,65504,0,0,0,1536,0,0,31,32768,0,
61440,768,120,0,2048,0,0,255,65535,65520,0,0,1,0,0,0,63,32768,0,
61440,4032,120,0,6144,0,0,255,65535,65520,0,0,1,32768,0,0,63,0,0,
61440,8160,120,0,6144,0,0,255,65535,65528,0,0,1,32768,0,0,63,0,0,
61440,16368,120,0,0,0,0,255,65535,65532,0,0,0,0,0,0,127,0,0,
61440,15216,120,0,0,0,0,254,0,254,0,0,0,0,0,0,126,0,0,
61440,16368,120,0,0,0,0,254,0,254,0,0,0,0,0,0,126,0,0,
61440,8160,120,0,0,0,0,254,0,254,0,0,0,0,0,0,254,0,0,
61440,1920,120,0,0,0,0,254,0,254,0,0,0,0,0,0,252,0,0,
61440,1920,120,0,0,0,0,254,0,254,0,0,0,0,0,0,252,0,0,
61440,1920,120,0,0,0,0,254,0,254,0,0,0,0,0,0,508,0,0,
61440,1920,120,0,0,0,0,254,0,254,0,0,0,0,0,0,508,0,0,
61440,1920,120,0,0,0,0,254,0,254,0,0,0,0,0,0,504,0,0,
61440,1920,120,0,0,0,0,254,0,126,0,0,0,0,0,0,1016,0,0,
61440,1920,120,0,0,0,0,254,0,62,0,0,0,0,0,0,1016,0,0,
61440,1920,120,0,0,0,0,254,0,30,0,0,0,0,0,0,1008,0,0,
61440,1920,120,0,0,0,0,254,0,0,0,0,0,0,0,0,2032,0,0,
61440,1920,120,0,0,0,0,254,0,0,0,0,0,0,0,0,2032,0,0,
61440,1920,120,0,0,0,0,254,0,0,0,0,0,0,0,0,2016,0,0,
61440,1920,120,0,0,0,0,254,0,0,0,0,0,0,0,0,4064,0,0,
61440,1920,120,0,0,0,0,254,0,0,0,0,0,0,0,0,4064,0,0,
61440,1920,120,0,0,0,0,254,0,0,0,0,0,0,0,0,4032,0,0,
61440,1920,120,0,0,0,0,254,0,0,0,0,0,0,0,0,8128,0,0,
61440,1920,120,0,0,0,0,254,0,0,0,0,0,0,0,0,8128,0,0,
61440,1920,120,0,0,0,0,254,0,0,0,0,0,0,0,0,8064,0,0,
61440,1920,120,0,0,0,0,254,0,0,0,0,0,0,0,0,16256,0,0,
61440,1920,120,0,0,0,0,254,0,0,0,0,0,0,0,0,16256,0,0,
61440,1920,120,0,0,0,0,254,0,0,0,0,0,0,0,0,16128,0,0,
61440,1920,120,0,0,0,0,254,0,0,0,0,0,0,0,0,32512,0,0,
61440,1920,120,0,0,0,0,254,0,0,0,0,0,0,0,0,32512,0,0,
61440,1920,120,0,0,0,0,254,0,0,0,0,0,0,0,0,32512,0,0,
61440,1920,120,0,0,0,0,254,0,0,0,0,0,0,0,0,65024,0,0,
61440,1920,120,0,0,0,0,254,0,0,0,0,0,0,0,0,65024,0,0,
61440,1920,120,0,0,0,0,254,0,0,0,0,0,0,0,0,65024,0,0,
61440,1920,120,0,0,0,0,1022,0,0,0,0,0,0,0,1,64512,0,0,
61440,1920,120,0,0,0,0,2046,0,0,0,0,0,0,0,1,64512,0,0,
61440,1920,120,0,0,0,0,1902,0,0,0,0,0,0,0,1,64512,0,0,
63488,1920,248,0,0,0,0,2046,0,0,0,0,0,0,0,3,63488,0,0,
64512,1920,504,0,0,0,0,1020,0,0,0,0,0,0,0,3,63488,0,0,
65535,65535,65528,0,0,0,0,504,0,0,0,0,0,0,0,0,0,0,0,
32767,65535,65520,0,0,0,0,96,0,0,0,0,0,0,0,0,0,0,0,
32767,65535,65520,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
8191,65535,65472,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
};
// About bitmap has 2 blank lines around it in every direction.
UWORD chip AboutData[456] =
{ /* Plane 0 */
0,0,0,
0,0,0,
4352,0,0,
4704,0,0,
2688,1024,0,
9984,1024,0,
8128,3584,0,
1824,3584,0,
2688,3840,0,
12864,3840,0,
1090,34688,0,
3,51072,128,
7,33728,256,
7,33728,1024,
15375,65535,65216,
15375,65504,1024,
7711,57584,256,
2591,61680,1152,
60,31864,1024,
60,7800,0,
1340,1980,0,
2040,1020,0,
1008,254,0,
1008,126,0,
480,31,0,
480,15,0,
0,0,0,
0,0,0,
0,0,0,
3643,37347,34944,
4388,37412,19584,
4388,37380,19584,
7972,37383,51840,
4388,37476,18816,
4388,37412,18816,
4384,37348,18560,
0,0,0,
0,0,0,
/* Plane 1 */
0,0,0,
0,0,0,
4352,14336,0,
4704,14336,0,
2688,30720,0,
9984,30720,0,
8128,61440,0,
1824,61440,0,
2689,57344,0,
12865,57344,0,
1089,16384,1024,
0,0,9216,
0,0,4096,
0,0,1024,
0,0,65216,
0,0,1024,
0,0,4352,
5140,0,8320,
3900,0,0,
3900,0,0,
1980,0,0,
2040,0,0,
1008,0,0,
1008,0,0,
480,0,0,
480,0,0,
0,0,0,
0,0,0,
0,0,0,
3643,37347,34944,
4388,37412,19584,
4388,37380,19584,
7972,37383,51840,
4388,37476,18816,
4388,37412,18816,
4384,37348,18560,
0,0,0,
0,0,0,
/* Plane 2 */
0,0,0,
0,0,0,
4352,0,0,
4704,0,0,
2688,0,0,
9984,0,0,
8128,0,0,
1824,0,0,
2688,0,0,
12864,0,0,
1090,32768,1024,
3,49152,9344,
7,32768,4352,
7,32768,1024,
15375,0,65024,
15375,0,1024,
7710,0,256,
7690,0,1152,
3840,0,1024,
3840,0,0,
1920,0,0,
1920,0,0,
768,0,0,
768,0,0,
0,0,0,
0,0,0,
0,0,0,
0,0,0,
0,0,0,
3643,37347,34944,
4388,37412,19584,
4388,37380,19584,
7972,37383,51840,
4388,37476,18816,
4388,37412,18816,
4384,37348,18560,
0,0,0,
0,0,0,
/* Plane 3 */
0,0,0,
0,0,0,
4352,14336,0,
4704,14336,0,
2688,30720,0,
9984,30720,0,
8128,61440,0,
1824,61440,0,
2689,57344,0,
12865,57344,0,
1091,49152,0,
3,49152,8320,
7,32768,4352,
7,32768,1024,
15,0,65216,
15,0,1024,
30,0,4096,
30,0,8192,
60,0,0,
60,0,0,
60,0,0,
120,0,0,
240,0,0,
240,0,0,
480,0,0,
480,0,0,
0,0,0,
0,0,0,
0,0,0,
3643,37347,34944,
4388,37412,19584,
4388,37380,19584,
7972,37383,51840,
4388,37476,18816,
4388,37412,18816,
4384,37348,18560,
0,0,0,
0,0,0
};
// PRIVATE STRUCTURES -----------------------------------------------------
struct Image Logo =
{ 0, 0,
295, 110, 4,
LogoData,
0x0f, 0x0,
NULL
};
struct Image About =
{ 0, 0,
44, 38, 4,
AboutData,
0x0f, 0x0,
NULL
};
MODULE struct EasyStruct EasyStruct =
{ sizeof(struct EasyStruct),
0,
TITLEBAR,
"Fieldset/highscores have been modified.",
"Continue|Cancel"
};
struct
{ WORD x, y;
STRPTR text;
} about[ABOUTLINES + 1] =
{ {72, 27, ABOUTSTRING },
{72, 35, RELEASEDATE },
{72, 51, COPYRIGHT },
{72, 59, "By James R. Jacobs" },
{16, 75, "Fieldset size: bytes" },
{16, 91, "Kickstart:" },
{16, 99, "Workbench:" }
};
struct
{ UBYTE scancode;
BYTE player, deltax, deltay, special;
BOOL down;
} key[NUMKEYS + 1] =
{ {Q, 0, -1, -1, MOVE, FALSE},
{W, 0, 0, -1, MOVE, FALSE},
{E, 0, 1, -1, MOVE, FALSE},
{A, 0, -1, 0, MOVE, FALSE},
{S, 0, 0, 1, MOVE, FALSE},
{D, 0, 1, 0, MOVE, FALSE},
{Z, 0, -1, 1, MOVE, FALSE},
{KEY_X, 0, 1, 1, MOVE, FALSE},
{C, 0, 1, 1, MOVE, FALSE},
{NUMERICSEVEN, 1, -1, -1, MOVE, FALSE},
{NUMERICEIGHT, 1, 0, -1, MOVE, FALSE},
{NUMERICNINE, 1, 1, -1, MOVE, FALSE},
{NUMERICFOUR, 1, -1, 0, MOVE, FALSE},
{NUMERICFIVE, 1, 0, 1, MOVE, FALSE},
{NUMERICSIX, 1, 1, 0, MOVE, FALSE},
{NUMERICONE, 1, -1, 1, MOVE, FALSE},
{NUMERICTWO, 1, 0, 1, MOVE, FALSE},
{NUMERICTHREE, 1, 1, 1, MOVE, FALSE},
{UP, 1, 0, -1, ONEHUMAN, FALSE},
{DOWN, 1, 0, 1, ONEHUMAN, FALSE},
{RIGHT, 1, 1, 0, ONEHUMAN, FALSE},
{LEFT, 1, -1, 0, ONEHUMAN, FALSE},
{SPACEBAR, 0, 0, 0, AMMO, FALSE},
{NUMERICZERO, 1, 0, 0, AMMO, FALSE},
{ENTER, 1, 0, 0, AMMO, FALSE},
{HELP, 0, 0, 0, TRAINER, FALSE},
{NUMERICSLASH, 0, 0, 0, TRAINER, FALSE},
{NUMERICASTERISK, 0, 0, 0, TRAINER, FALSE},
{NUMERICPLUS, 0, 0, 0, TRAINER, FALSE},
{NUMERICMINUS, 0, 0, 0, TRAINER, FALSE}
}; /* Never leave unused keys in this structure. */
/* #DEFINES -------------------------------------------------------------- */
#define ID_8SVX MAKE_ID('8','S','V','X')
#define ID_BODY MAKE_ID('B','O','D','Y')
#define ID_VHDR MAKE_ID('V','H','D','R')
#define PALCLOCK 3546895
#define NTSCCLOCK 3579545
#define SOFT 32
#define LOUD 64 /* = Unity */
#define RUNDOWNX (FIELDCENTREXPIXEL - 152)
#define RUNDOWNX_1ST 32
#define RUNDOWNX_2ND (32 + (FONTX * 14))
#define RUNDOWNX_3RD (32 + (FONTX * 21))
#define RUNDOWNX_4TH (32 + (FONTX * 28))
#define RUNDOWNY (FIELDCENTREYPIXEL - 32)
#define RUNDOWNY_2ND 12
#define RUNSTRINGLENGTH 27
/* PRIVATE STRUCTURES ---------------------------------------------------- */
#define INDEX_ANIMATIONS 21
#define INDEX_CREATEICONS 22
#define INDEX_SHOWTITLEBAR 23
struct NewMenu NewMenu[] =
{ { NM_TITLE, "Project", 0 , 0, 0, 0}, // 0
{ NM_ITEM, "New", "N", 0, 0, 0}, // 1
{ NM_ITEM, "Open...", "O", 0, 0, 0}, // 2
{ NM_ITEM, "Revert", "R", 0, 0, 0}, // 3
{ NM_ITEM, NM_BARLABEL, 0 , 0, 0, 0}, // 4
{ NM_ITEM, "Save", "S", 0, 0, 0}, // 5
{ NM_ITEM, "Save As...", "A", 0, 0, 0}, // 6
{ NM_ITEM, NM_BARLABEL, 0 , 0, 0, 0}, // 7
{ NM_ITEM, "Delete...", "D", 0, 0, 0}, // 8
{ NM_ITEM, NM_BARLABEL, 0 , 0, 0, 0}, // 9
{ NM_ITEM, "Quit", "Q", 0, 0, 0}, // 10
{ NM_TITLE, "Edit", 0 , NM_MENUDISABLED, 0, 0}, // 11
{ NM_ITEM, "Cut", "X", 0, 0, 0}, // 12
{ NM_ITEM, "Copy", "C", 0, 0, 0}, // 13
{ NM_ITEM, "Paste", "V", 0, 0, 0}, // 14
{ NM_ITEM, NM_BARLABEL, 0 , 0, 0, 0}, // 15
{ NM_ITEM, "Erase", "E", 0, 0, 0}, // 16
{ NM_ITEM, "Delete", 0 , 0, 0, 0}, // 17
{ NM_ITEM, "Insert", 0 , 0, 0, 0}, // 18
{ NM_ITEM, "Append", 0 , 0, 0, 0}, // 19
{ NM_TITLE, "Settings", 0 , 0, 0, 0}, // 20
{ NM_ITEM, "Animations?", "T", CHECKIT | MENUTOGGLE, 0, 0}, // 21
{ NM_ITEM, "Create Icons?", "I", CHECKIT | MENUTOGGLE, 0, 0}, // 22
{ NM_ITEM, "Show Titlebar?","B", CHECKIT | MENUTOGGLE, 0, 0}, // 23
{ NM_TITLE, "Help", 0 , 0, 0, 0}, // 24
{ NM_ITEM, "Creatures...", "1", 0, 0, 0}, // 25
{ NM_ITEM, "Objects...", "2", 0, 0, 0}, // 26
{ NM_ITEM, NM_BARLABEL, 0 , 0, 0, 0}, // 27
{ NM_ITEM, "About...", "?", 0, 0, 0}, // 28
{ NM_END, NULL, 0 , 0, 0, 0} // 29
};
struct GamePortTrigger Trigger =
{ GPTF_DOWNKEYS,
65535,
1, 1
};
// gadgets
struct NewGadget StringGadget =
{ 0, 0,
179, 12,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL
};
struct NewGadget ShuffleGadget =
{ 0, 0,
0, 0,
NULL,
NULL,
NULL,
NULL,
NULL
};
struct NewGadget CycleGadget =
{ 0, 0,
128, 13,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL
};
struct
{ STRPTR filename;
BYTE volume;
ULONG length[2], size, speed, bank;
UBYTE* base;
} samp[SAMPLES + 1] =
{ { "PROGDIR:fx/dog.8svx", SOFT}, /* FXBORN_DOG */
{ "PROGDIR:fx/rain.8svx", SOFT}, /* FXBORN_RAIN */
{"PROGDIR:fx/lightning.8svx", LOUD}, /* FXGET_LIGHTNING */
{ "PROGDIR:fx/missile.8svx", LOUD}, /* FXBORN_MISSILE */
{ "PROGDIR:fx/protect.8svx", SOFT}, /* FXBORN_PROTECTOR */
{ "PROGDIR:fx/death.8svx", LOUD}, /* FXDEATH_WORM */
{ "PROGDIR:fx/enclose.8svx", LOUD}, /* FXDO_ENCLOSE */
{ "PROGDIR:fx/fragment.8svx", SOFT}, /* FXBORN_FRAGMENT */
{ "PROGDIR:fx/ammo.8svx", LOUD}, /* FXGET_AMMO */
{ "PROGDIR:fx/cyclone.8svx", LOUD}, /* FXGET_CYCLONE */
{ "PROGDIR:fx/fx.8svx", SOFT}, /* FXGET_RAIN */
{ "PROGDIR:fx/grower.8svx", SOFT}, /* FXGET_GROWER */
{ "PROGDIR:fx/object.8svx", SOFT}, /* FXGET_OBJECT */
{ "PROGDIR:fx/powerup.8svx", LOUD}, /* FXGET_POWERUP */
{ "PROGDIR:fx/grave.8svx", SOFT}, /* FXGET_GRAVE */
{ "PROGDIR:fx/amigan.8svx", SOFT}, /* FXHELP */
{ "PROGDIR:fx/shoot.8svx", SOFT}, /* FXUSE_AMMO */
{ "PROGDIR:fx/armour.8svx", SOFT}, /* FXUSE_ARMOUR */
{ "PROGDIR:fx/bomb.8svx", LOUD}, /* FXUSE_BOMB */
{ "PROGDIR:fx/teleport.8svx", SOFT}, /* FXUSE_TELEPORT */
{ "PROGDIR:fx/bird.8svx", SOFT}, /* FXBORN_BIRD */
{ "PROGDIR:fx/green.8svx", SOFT}, /* FXPAIN */
{ "PROGDIR:fx/red.8svx", SOFT},
{ "PROGDIR:fx/blue.8svx", SOFT},
{ "PROGDIR:fx/yellow.8svx", SOFT},
{ "PROGDIR:fx/applause.8svx", SOFT}, /* FXAPPLAUSE (after each new hiscore) */
{ "PROGDIR:fx/gameover.8svx", LOUD}, /* FXGAMEOVER (if all worms are dead) */
{ "PROGDIR:fx/click.8svx", SOFT}, /* FXCLICK (rundown, keypresses) */
{ "PROGDIR:fx/riff.8svx", LOUD}, /* FXRIFF (after each rundown) */
{ "PROGDIR:fx/siren.8svx", SOFT} /* FXSIREN (out of time) */
};
/* ARRAYS -------------------------------------------------------------- */
MODULE UBYTE* CycleOptions[4][6] =
{ { (UBYTE *) "None",
(UBYTE *) "Amiga",
(UBYTE *) "Joystick 3",
(UBYTE *) "Gamepad 3",
(UBYTE *) "Lt. Kybd",
NULL
},
{ (UBYTE *) "None",
(UBYTE *) "Amiga",
(UBYTE *) "Joystick 4",
(UBYTE *) "Gamepad 4",
(UBYTE *) "Rt. Kybd",
NULL
},
{ (UBYTE *) "None",
(UBYTE *) "Amiga",
(UBYTE *) "Joystick 2",
(UBYTE *) "Gamepad 2",
NULL,
NULL
},
{ (UBYTE *) "None",
(UBYTE *) "Amiga",
(UBYTE *) "Joystick 1",
(UBYTE *) "Gamepad 1",
NULL,
NULL
} };
MODULE STRPTR sfxerror[] =
{ "No errors.",
"Can't open file!",
"Can't read file!",
"Not an IFF 8SVX; too short!",
"Not an IFF FORM!",
"No memory for read!",
"Read error!",
"Malformed IFF; too short!",
"Not an IFF 8SVX!",
"No chip memory!"
};
/* PUBLIC STRUCTURES ----------------------------------------------------- */
struct Chunk
{ LONG ckID;
LONG ckSize;
LONG ckType;
void* ckData;
struct Chunk* ckNext;
};
/* TYPEDEFS --------------------------------------------------------------- */
typedef LONG Fixed; /* A fixed-point value, 16 bits to the left
of the point and 16 to the right. A Fixed
is a number of 2**16ths, ie. 65536ths. */
typedef struct
{ ULONG oneShotHiSamples, /* # samples in the high octave 1-shot part */
repeatHiSamples, /* # samples in the high octave repeat part */
samplesPerHiCycle; /* # samples/cycle in high octave, else 0 */
UWORD samplesPerSec; /* data sampling rate */
UBYTE ctOctave, /* # of octaves of waveforms */
sCompression; /* data compression technique used */
Fixed volume; /* playback nominal volume from 0 to Unity
(full volume). Map this value into the
output hardware's dynamic range (0-64). */
} Voice8Header;
/* Must have blank line at EOF. */